package com.ssy.lingxi.order.model.vo.common.request;

import com.ssy.lingxi.common.model.vo.PageVO;
import com.ssy.lingxi.order.handler.annotation.DateStringFormatAnnotation;

import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Positive;
import java.io.Serializable;

/**
 * 售后能力 - 代客退货换货 - 查询订单商品列表返回
 * @author 万宁
 * @version 2.0.0
 * @date 2021-08-04
 */
public class OrderAgentAfterSalePageVO extends PageVO implements Serializable {
    private static final long serialVersionUID = 3807032423408877213L;

    /**
     * 采购会员Id
     */
    @NotNull(message = "采购会员Id要大于0")
    @Positive(message = "采购会员Id要大于0")
    private Long buyerMemberId;

    /**
     * 采购会员角色Id
     */
    @NotNull(message = "采购会员角色Id要大于0")
    @Positive(message = "采购会员角色Id要大于0")
    private Long buyerRoleId;

    /**
     * 订单类型
     */
    @NotNull(message = "订单类型不能为空")
    @Positive(message = "订单类型枚举要大于0")
    private Integer orderType;

    /**
     * 售后类型，2-换货，3-退货，4-维修
     */
    @NotNull(message = "售后类型不能为空，2-换货，3-退货，4-维修")
    @Min(value = 2, message = "售后类型参数错误，2-换货，3-退货，4-维修")
    @Max(value = 4, message = "售后类型参数错误，2-换货，3-退货，4-维修")
    private Integer afterSalesType;

    /**
     * 订单编号
     */
    private String orderNo;

    /**
     * 订单摘要
     */
    private String digest;

    /**
     * 下单起始日期，格式为yyyy-MM-dd
     */
    @DateStringFormatAnnotation
    private String startDate;

    /**
     * 下单结束日期，格式为yyyy-MM-dd
     */
    @DateStringFormatAnnotation
    private String endDate;

    public Long getBuyerMemberId() {
        return buyerMemberId;
    }

    public void setBuyerMemberId(Long buyerMemberId) {
        this.buyerMemberId = buyerMemberId;
    }

    public Long getBuyerRoleId() {
        return buyerRoleId;
    }

    public void setBuyerRoleId(Long buyerRoleId) {
        this.buyerRoleId = buyerRoleId;
    }

    public Integer getOrderType() {
        return orderType;
    }

    public void setOrderType(Integer orderType) {
        this.orderType = orderType;
    }

    public Integer getAfterSalesType() {
        return afterSalesType;
    }

    public void setAfterSalesType(Integer afterSalesType) {
        this.afterSalesType = afterSalesType;
    }

    public String getOrderNo() {
        return orderNo;
    }

    public void setOrderNo(String orderNo) {
        this.orderNo = orderNo;
    }

    public String getDigest() {
        return digest;
    }

    public void setDigest(String digest) {
        this.digest = digest;
    }

    public String getStartDate() {
        return startDate;
    }

    public void setStartDate(String startDate) {
        this.startDate = startDate;
    }

    public String getEndDate() {
        return endDate;
    }

    public void setEndDate(String endDate) {
        this.endDate = endDate;
    }
}
